#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void Print(int* array, int size)
{
  for(int i = 0; i < size; i++){
    printf("%d ", array[i]);
  }
  printf("\n");
}

void Swap(int* pa1, int* pa2)
{
  int tmp = *pa1;
  *pa1 = *pa2;
  *pa2 = tmp;
}

void BubbleSort(int* array, int size)
{
  for(int i = 0; i < size; i++){
    for(int j = 1; j < size - i; j++){
      if(array[j - 1] > array[j]) Swap(&array[j - 1], &array[j]);
    }
  }
}

void TestBubbleSort()
{
  int* array = (int*)malloc(sizeof(int) * 100);
  if(array == NULL) {
    perror("malloc");
    return ;
  }
  
  for(int i = 0; i < 100; i++){
    array[i] = rand() % 100 + 1;
  }

  BubbleSort(array, 100);
  Print(array, 100);
  free(array);
}

int main()
{
  srand((unsigned long)time(NULL));
  TestBubbleSort();
  return 0;
}
